投稿数 585
公開から 2940

fast-forward merge とは?


Categories: git

はじめに

知らない言葉が出てきたのでまとめました。

普段SourceTreeを使用してるのであんま細かいことわかってないんですよね。 コマンド使うと深いところまで理解できます。。。(多分)

fast-forward mergeとは?

日本語訳だと「早送りマージ」

branchをマージする際、マージするbranchの分岐元がそのマージするbranchその人だった場合、 ただ単にポインタを前に進めるだけ、、になる。

ただ単にポインタを前に進めるだけってなに?

A:マージコミットが発生しない!

よくよく考えたら普段マージするとき2種類パターンがあることに気付かされます。

その2種類とは?

マージコミットが発生するパターンマージコミットが発生しないパターン です。

わかりづらいので実際にやってみた

Fast-forward mergeの例

[code lang=text] ryo_oda$ git merge feature/test Updating f7870e8..d923e55 Fast-forward test.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)

gitさん「ほいほいmergeね…?」 gitさん「よくよく見たら…派生元のmaster派生してから変わってないやんけ、、」 gitさん「単純にmasterの先頭をfeature/testの先頭のところにもってくればええか。。」

って感じです。(多分)

[/code]

Fast-forwardじゃない mergeの例

[code lang=text] ryo_oda$ git merge feature/2018-10-04 Auto-merging test.md CONFLICT (content): Merge conflict in test.md Automatic merge failed; fix conflicts and then commit the result. [/code]

ってこれはAuto-mergingに失敗してしまったパターンです。。 とくにコンフリクトがない場合、ここでmergeコミットが作られます。正確に言うと「Auto-merge」です。

なんとなく見えてきましたね!😝